package com.wzq.permission.client.model;


/**
 * 分页对象
 * 
 * project：pub-core
 * 
 * $Author:Jeffy Chen
 * @version $Revision:$ 
 * @Modify $Date:$
 * @create time：2014-4-26 下午11:02:47
 *
 */
public class Pager extends EasyUiPager{
	/**
	 * 当前页码
	 */
	private int pageNo;
	/**
	 * 总记录数
	 */
	private int totalCount;
	/**
	 * 每页最大记录数
	 */
	private int pageSize;
	
	public Pager (){
		
	}
	
	public Pager (int pageNo,int pageSize){
		this.pageNo = pageNo;
		this.pageSize = pageSize;
		this.setPage(pageNo);
		this.setRows(pageSize);
	}
	
	public Pager (int pageNo){
		this.pageNo = pageNo;
		this.setPage(pageNo);
	}
	
	public int getPageNo() {
		if(pageNo==0 && this.getPage()!=0){
			pageNo = this.getPage();
		}
		return pageNo;
	}
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
		this.setPage(pageNo);
	}
	
	public int getTotalCount() {
		return totalCount;
	}

	public void setTotalCount(int totalCount) {
		this.totalCount = totalCount;
	}

	public int getPageSize() {
		if(pageSize==0 && this.getRows()!=0){
			pageSize = this.getRows();
		}
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
		this.setRows(pageSize);
	}

	public boolean getHasPrePage() {
		return getPageNo()!=1?true:false;
	}
	
	public boolean getHasNextPage() {
		return getPageNo()!=getTotalPage()?true:false;
	}
	
	/**
     * 得到总页数
     * @return 
     */
    public int getTotalPage() {
        return (totalCount%getPageSize()==0)?totalCount/getPageSize():totalCount/getPageSize()+1;
    }
    
    /**
     * 得到第一页
     * @return
     */
    public int getFirstPage()
    {
       return 1;
    }
    
    /**
     * 得到最后一页
     * @return
     */
    public int getLastPage()
    {
       return getTotalPage();
    }	
    
    /**
     * 获取当前起始记录位置
     * @return 
     */
    public int getBeginIndex() {
		if(getPageNo()==0 || getPageNo()==1){
			return 0;
		}
        return getPageSize()*(getPageNo()-1);
    }
    
    /**
     * 获取当前结束记录位置
     * @return
     */
    public int getEndIndex(){
    	return (getPageNo() * getPageSize()) - 1;
    }
    
}
